#ifndef SKYID_ENGINE_H 
#define SKYID_ENGINE_H

#include "common.h"
#include "config.h"
#include "vfs.h"
#include "audio.h"
#include "sound.h"
#include "music.h"
#include "window.h"
#include "render.h"
#include "resource_manager.h"
#include "script_engine.h"

namespace SkyID 
{

typedef void (*RenderCallback)();
typedef void (*AnimateCallback)(float dt);

//- Engine --------------------------------------------------------------------

namespace Engine
{

bool initialize(const Config &config);
void shutdown();

bool process();
void quit();

void setRenderCallback(RenderCallback callback);
void setAnimateCallback(AnimateCallback callback);

} // namespace Engine

} // namespace SkyID

#endif // SKYID_ENGINE_H
